package com.cee.service.Impl;

import com.cee.common.result.ResultCodeEnum;
import com.cee.dao.SysConfigMapper;
import com.cee.dto.SysConfigDTO;
import com.cee.exception.CeeException;
import com.cee.service.SysConfigService;
import com.cee.util.JsonUtil;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;


/**
 * 系统配置实现类
 */
@Slf4j
public class SysConfigServiceImpl implements SysConfigService {
    @Autowired
    private SysConfigMapper sysConfigMapper;

    @Override
    public SysConfigDTO getSysConfigById(String sysCnfgId) {
        if(StringUtils.isEmpty(sysCnfgId)){
            return null;
        }
        SysConfigDTO SysConfigDTO = sysConfigMapper.getSysConfigById(sysCnfgId);
        if (SysConfigDTO == null){
            throw new CeeException(ResultCodeEnum.SYS_ERR_01);
        }
        return SysConfigDTO;
    }

    @Override
    public void updateByKey(Long key, String value) {
        SysConfigDTO update = new SysConfigDTO();
        update.setSysCnfgKey(key);
        update.setSysCnfgText(value);
        sysConfigMapper.updateById(update);
    }

    @Override
    public PageInfo<SysConfigDTO> getSysConfigPage(SysConfigDTO SysConfigDTO) {
        Page<SysConfigDTO> startPage = PageHelper.startPage(SysConfigDTO.getPageInfo().getPageNum(), SysConfigDTO.getPageInfo().getPageSize());
        List<SysConfigDTO> list = sysConfigMapper.getSysConfigList(SysConfigDTO);
        return new PageInfo<>(startPage);
    }

    @Override
    public SysConfigDTO updateSysConfig(SysConfigDTO SysConfigDTO) {
        SysConfigDTO update = new SysConfigDTO();
        sysConfigMapper.updateById(update);
        log.debug("update VisSysConfig : {}" + JsonUtil.formatAsPrettyJson(update));
        return update;
    }


}
